Last updated: 2020-04-10

Checks: 6 1

Knit directory: tracking-app/

This reproducible R Markdown analysis was created with workflowr (version 1.6.1). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.


The R Markdown file has unstaged changes. To know which version of the R Markdown file created these results, you’ll want to first commit it to the Git repo. If you’re still working on the analysis, you can ignore this warning. When you’re finished, you can run wflow_publish to commit the R Markdown file and build the HTML.

Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.

The command set.seed(20200329) was run prior to running the code in the R Markdown file. Setting a seed ensures that any results that rely on randomness, e.g. subsampling or permutations, are reproducible.

Great job! Recording the operating system, R version, and package versions is critical for reproducibility.

Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.

Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.

Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.

The results in this page were generated with repository version 647ece6. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.

Note that you need to be careful to ensure that all relevant files for the analysis have been committed to Git prior to generating the results (you can use wflow_publish or wflow_git_commit). workflowr only checks the R Markdown file, but you know if there are other scripts or data files that it depends on. Below is the status of the Git repository when the results were generated:


Untracked files:
    Untracked:  .Rhistory

Unstaged changes:
    Modified:   .DS_Store
    Modified:   analysis/GERcov1.Rmd

Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.


These are the previous versions of the repository in which changes were made to the R Markdown (analysis/GERcov1.Rmd) and HTML (public/GERcov1.html) files. If you’ve configured a remote Git repository (see ?wflow_git_remote), click on the hyperlinks in the table below to view the files as they were in that past version.

File Version Author Date Message
Rmd 647ece6 Lorenz-Spreen 2020-04-10 small changes in the description
html 647ece6 Lorenz-Spreen 2020-04-10 small changes in the description
Rmd 6c3a054 Lorenz-Spreen 2020-04-10 small changes in the description
html 6c3a054 Lorenz-Spreen 2020-04-10 small changes in the description
Rmd eef73a5 Lorenz-Spreen 2020-04-10 small changes in the description
html eef73a5 Lorenz-Spreen 2020-04-10 small changes in the description
Rmd 356b029 Lorenz-Spreen 2020-04-10 fixed descriptions
html 356b029 Lorenz-Spreen 2020-04-10 fixed descriptions
Rmd c0b85a0 Lorenz-Spreen 2020-04-09 updated yes/no coding
html c0b85a0 Lorenz-Spreen 2020-04-09 updated yes/no coding
Rmd 8a3d336 Lorenz-Spreen 2020-04-09 updated html
html 8a3d336 Lorenz-Spreen 2020-04-09 updated html
html 9e07c4c Lorenz-Spreen 2020-04-09 updated html
html 298d978 Lorenz-Spreen 2020-04-09 fixed parsing bug
Rmd e68c870 Lorenz-Spreen 2020-04-09 Host with GitLab.
html e68c870 Lorenz-Spreen 2020-04-09 Host with GitLab.
Rmd 7a7a400 Lorenz-Spreen 2020-04-09 updated website
html 7a7a400 Lorenz-Spreen 2020-04-09 updated website
html c53bea7 Lorenz-Spreen 2020-04-09 Host with GitLab.
Rmd 2d3c183 Lorenz-Spreen 2020-04-09 initial commit

1 Status of this report

These results represent a snapshot of an ongoing analysis and have not been peer-reviewed. They are for information but not for citation or to inform policy (as yet). Please report comments or bugs to or leave a comment on the relevant post on our subreddit.

Last update: Fri Apr 10 19:36:16 2020

These results are for Germany only. For other countries, return Home and choose another country.

2 Germany Wave 1 (31 March 2020)

Participants: A representative samples of 1,000 German participants were recruited through Lucid. Participants were at least 18 years old.

Preregistration: The preregistration for the study is here.

2.1 Basic exploration

Note that the R code for this analysis can be hidden or made visible by clicking the black toggles next to each segment.

2.2 Clean up data

  • Remove observations that are returned as not having finished.
  • Remove observations from participants who answered the fact check about the scenario incorrectly.
  • Remove lots of unnecessary variables to create a lean dataset.
  • Reverse score item fm_limited so it points towards increasing libertarianism, just like the other two.
rm(list=ls())
library(lattice)
library(hexbin) #helps with large data sets in lattic scatterplot matrix
library(stargazer)
library(tidyverse)
library(lme4)
library(gridExtra)
library(stringr)
library(Hmisc)
library(reshape2)
library(psych)
library(scales)
library(summarytools) #contains descr()
library(workflowr)
library(readxl)
library(vioplot)
library(expss)  #for pretty looking tables
library(jtools) #for pretty looking regression output
library(kableExtra) #more prettification of regression output via jtools --> knitr
library(broom.mixed) #tidying methods for mixed models, required for pretty looking regression output

revscore <- function (x,mm) {  #this reverse scores a scale for items of reversed polarity
  return ((mm+1)-x)            
}

#define working directories
inputdir <- "data"

# Reading data and variable names 
covfn        <- paste(inputdir,"German_tracking_survey_numeric.csv",sep="/") #this is the complete data file with demographics. Version on OSF does not have demographics to reduce likelihood of reidentification of respondents.
covdata      <- read.csv(covfn, na.strings = "")
#remove unfinished, failed attention check, wrongly directed
covfin  <- covdata %>% filter(Finished==1) %>%  filter(attention_check == 1) %>% filter(!(is_accceptable1==""&app_uptake1=="")) %>% filter(!(is_acceptable2==""&app_uptake2=="")) %>% select(-c(starts_with("Recipient"),starts_with("Q_"),Status,Finished,Progress,DistributionChannel,UserLanguage,ResponseId))

#numeric data types: remaining problem with mutliple choice responses for information source
covfin[5:51] <- sapply(covfin[5:51], function(x) {
    if(is.factor(x)) as.numeric(as.character(x)) else x
})
Warning in FUN(X[[i]], ...): NAs introduced by coercion
covfin <- covfin %>% mutate(fm_limited=revscore(fm_limited,7))
covfin$id <- 1:nrow(covfin)

#compute composite score for worldview
covfin$Worldview <- covfin %>% select(c(fm_unres_best, fm_limited, lim_gov)) %>% apply(.,1, mean, na.rm=TRUE)

#do some cleaning up of silly variable names
covfin <- covfin %>% rename(Age = age_4)

#create good labels for variables (from expss package)
covfin <- apply_labels(covfin,
                       gender = "Gender",
                       gender = c("Male" = 1, "Female" = 2, "Other" = 3),
                       education = "Education",
                       education = c("Hauptschule" = 1, "Realschule" = 2, "Abitur" = 3, "Universitaet" = 5, "None" = 4),
                       COVID_positive_1 = "I was tested positive",
                       COVID_positive_1 = c("Yes" = 1, "No" = 0),
                       COVID_positive_2 = "Tested pos someone I know",
                       COVID_positive_2 = c("Yes" = 1, "No" = 0),
                       scenario_type = "Type of policy scenario",
                       COVID_lost_job = "I lost my job",
                       COVID_lost_job = c("Yes" = 1, "No" = 0))
                       
covfin$COVID_info_source <- gsub("1", "Newspaper (printed or online)", covfin$COVID_info_source)
covfin$COVID_info_source <- gsub("2", "Social media", covfin$COVID_info_source)
covfin$COVID_info_source <- gsub("3", "Friends/family", covfin$COVID_info_source)
covfin$COVID_info_source <- gsub("4", "Radio", covfin$COVID_info_source)
covfin$COVID_info_source <- gsub("5", "Television", covfin$COVID_info_source)
covfin$COVID_info_source <- gsub("6", "Other", covfin$COVID_info_source)
covfin <- apply_labels(covfin, COVID_info_source= "Information source")

2.3 Demographics

Number of retained participants: 807.

Gender, education, and age:

cro_tpct(covfin$gender) %>% set_caption("Gender identification: Percentages")
Gender identification: Percentages
 #Total 
 Gender 
   Male  49.1
   Female  50.6
   Other  0.4
   #Total cases  807
cro_tpct(covfin$education) %>% set_caption("Level of education: Percentages")
Level of education: Percentages
 #Total 
 Education 
   Hauptschule  13.6
   Realschule  33.3
   Abitur  26.4
   None  0.5
   Universitaet  26.1
   #Total cases  807
descr(covfin$Age)
Descriptive Statistics  
covfin$Age  
N: 807  

                       Age
----------------- --------
             Mean    47.11
          Std.Dev    17.24
              Min    18.00
               Q1    32.00
           Median    49.00
               Q3    61.00
              Max    91.00
              MAD    22.24
              IQR    29.00
               CV     0.37
         Skewness    -0.08
      SE.Skewness     0.09
         Kurtosis    -1.10
          N.Valid   807.00
        Pct.Valid   100.00
hist(covfin$Age, xlab="Age",main="",las=1)

Version Author Date
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09

3 Comparison between scenarios

3.1 Acceptability of policy

Not all items are entirely commensurate between scenarios. We begin with a graphical summary. The figure below shows people’s confidence that each of the scenarios would:

  • reduce their likelihood of contracting COVID-19
  • allow them to resume their normal lives more rapidly
  • reduce spread of COVID-19 in the community.
#plot violins side by side
plotvn <- c("Reduce contracting","Resume normal","Reduce spread")

vioplot(select(covfin,c(participant_benefit,Q328,reduce_spread_mild)), col = "yellow", plotCentre = "line", side = "left",las=1,names=plotvn,ylim=c(1,7.5))
vioplot(select(covfin,c(Q284,Q330,reduce_spread_severe)), col = "red", plotCentre = "line", side = "right", add = T )
title(xlab="Variable",ylab="Confidence")
legend(3,7.6, fill = c("yellow", "red"), legend = c("Mild", "Severe"), title = "Type of scenario")

Version Author Date
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09

Basic acceptability of each scenario, probed by a single item immediately after reading the scenario. The table shows percentages. For the mild scenario, the question refers to whether participant would download the app. For the severe scenario, the question refers to acceptability of the tracking mandated by government.

#use gather and drop
accept1 <- covfin %>% select(c(app_uptake1,is_accceptable1)) %>% pivot_longer(c(app_uptake1,is_accceptable1), names_to = "key", values_to = "value") 
covfin$accept1 <- (accept1 %>% drop_na())$value
#we do not drop NAs for the pivoted data frame to allow correct merging for quasi interval score below with the conditional responses
accept1 <- apply_labels(accept1,
                       value = "Acceptability of policy",
                       value = c("Yes" = 1, "No" = 0),
                       key = "Type of scenario",
                       key = c("Mild" ="app_uptake1", "Severe" = "is_accceptable1"))

cro_tpct(accept1$value,row_vars=accept1$key) #presence of NAs makes no difference here
 #Total 
 Type of scenario 
   Mild   Acceptability of policy   No  37.2
    Yes  62.8
    #Total cases  393
   Severe   Acceptability of policy   No  38.4
    Yes  61.6
    #Total cases  414
chisq.test(unlabel(accept1$value),unlabel(accept1$key),correct=TRUE) 

    Pearson's Chi-squared test with Yates' continuity correction

data:  unlabel(accept1$value) and unlabel(accept1$key)
X-squared = 0.087076, df = 1, p-value = 0.7679

The difference between acceptability of scenarios is not significant by a \(\chi^2\) test on the contingency table.

Repeated probing of basic acceptability of each scenario after multiple questions about the scenario have been answered. The table shows percentages. For the mild scenario, the question refers to whether participant would download the app. For the severe scenario, the question refers to acceptability of the tracking mandated by government.

#use gather and drop
accept2 <- covfin %>% select(c(app_uptake2,is_acceptable2)) %>% pivot_longer(c(app_uptake2,is_acceptable2), names_to = "key", values_to = "value") 
covfin$accept2 <- (accept2 %>% drop_na() )$value
accept2 <- apply_labels(accept2,
                       value = "Acceptability of policy",
                       value = c("Yes" = 1, "No" = 0),
                       key = "Type of scenario",
                       key = c("Mild" ="app_uptake2", "Severe" = "is_acceptable2"))
cro_tpct(accept2$value,row_vars=accept2$key) 
 #Total 
 Type of scenario 
   Mild   Acceptability of policy   No  37.7
    Yes  62.3
    #Total cases  393
   Severe   Acceptability of policy   No  42.5
    Yes  57.5
    #Total cases  414
chisq.test(unlabel(accept2$value),unlabel(accept2$key),correct=TRUE) 

    Pearson's Chi-squared test with Yates' continuity correction

data:  unlabel(accept2$value) and unlabel(accept2$key)
X-squared = 1.7793, df = 1, p-value = 0.1822

The difference between acceptability of scenarios is now significant by a \(\chi^2\) test, and overall acceptability of both scenarios has been reduced slightly compared to first set of questions.

Those people who found the scenario unacceptable were asked follow-up questions. For both scenarios, people were asked if their decision would change if the government was required to delete the data and cease tracking after 6 months. Responses to this sunset question (percentages) were as follows:

#use gather and drop
sunset <- covfin %>% select(c(sunset_app,sunset)) %>% pivot_longer(c(sunset_app,sunset), names_to = "key", values_to = "value") 
sunset <- apply_labels(sunset,
                       value = "Acceptability with sunset",
                       value = c("Yes" = 1, "No" = 0),
                       key = "Type of scenario",
                       key = c("Mild" ="sunset_app", "Severe" = "sunset"))
cro_tpct(sunset$value,row_vars=sunset$key) 
 #Total 
 Type of scenario 
   Mild   Acceptability with sunset   No  71.6
    Yes  28.4
    #Total cases  148
   Severe   Acceptability with sunset   No  69.3
    Yes  30.7
    #Total cases  176
chisq.test(unlabel(sunset$value),unlabel(sunset$key),correct=TRUE) 

    Pearson's Chi-squared test with Yates' continuity correction

data:  unlabel(sunset$value) and unlabel(sunset$key)
X-squared = 0.10902, df = 1, p-value = 0.7413

The majority of people persisted in their opposition to the policy even with a sunset clause, and this did not differ between scenarios.

In addition, people who found the mild scenario unacceptable where asked a further followup question, namely if they would change their decision if data was stored only on the user’s smartphone (not government servers) and people were given the option to provide the data if they tested positive.

covfin <- apply_labels(covfin,
                       data_local = "Acceptability with local storage",
                       data_local = c("Yes" = 1, "No" = 0))
cro_tpct(covfin$data_local) 
 #Total 
 Acceptability with local storage 
   No  62.3
   Yes  37.7
   #Total cases  146

Less than half of the people who rejected the policy initially were prepared to accept it with local data storage.

In addition, people who found the severe scenario unacceptable where asked a further followup question, namely if they would change their decision if there was an option to opt out of data collection.

covfin <- apply_labels(covfin,
                       opt_out = "Acceptability with opt out",
                       opt_out = c("Yes" = 1, "No" = 0))
cro_tpct(covfin$opt_out) 
 #Total 
 Acceptability with opt out 
   No  45.5
   Yes  54.5
   #Total cases  176

Slightly more than half the people who rejected the policy initially were prepared to accept it with an opt out clause.

3.2 Assessment of risk of scenarios, trust in government and data security

The next graph shows responses to the following items (abridged from survey):

  1. How easy is it for people to decline participation in the proposed project?
  2. To what extent is the Government only collecting the data necessary?
  3. How sensitive is the data being collected in the proposed project?
  4. How serious is the risk of harm that could arise from the proposed project?
  5. How much do you trust the Government to use the tracking data only to deal with the COVID-19 pandemic?
  6. How much do you trust the Government to be able to ensure the privacy of each individual?
  7. How secure is the data that would be collected for the proposed project?
  8. To what extent do people have ongoing control of their data?
#plot violins side by side
#x11(width=10,height=6)
plotvn <- c("Decline","Necessary","Sensitive","Risk","Trust use","Trust privacy","Secure", "Control")
#select(filter(covfin,scenario_type=="mild"),c(decline_participate:ongoing_control))
vioplot(select(filter(covfin,scenario_type=="mild"),c(decline_participate:ongoing_control)), col = "yellow", plotCentre = "line", side = "left",las=1,names=plotvn,ylim=c(1,7.5))
vioplot(select(filter(covfin,scenario_type=="severe"),c(decline_participate:ongoing_control)), col = "red", plotCentre = "line", side = "right", add = T )
title(xlab="Variable",ylab="Response")
legend(3,7.6, fill = c("yellow", "red"), legend = c("Mild", "Severe"), title = "Type of scenario")

Version Author Date
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09

4 Role of worldviews

4.1 Worldview and risk perception

We relate a composite of the 3 worldview items to the composite of the 4 items probing perceived risk from COVID. Worldview is scored such that greater values reflect greater libertarianism.

p <- ggplot(covfin, aes(Worldview, COVIDrisk)) +
            geom_point(size=1.5,shape = 21,fill="red",
               position=position_jitter(width=0.15, height=0.15)) +
            geom_smooth() +
    theme(plot.title = element_text(size = 18),
          panel.background = element_rect(fill = "white", colour = "grey50"),
          text = element_text(size=14)) +
    xlim(0.8,7.2) + ylim(0.8,5.2) +
    labs(x="Worldview (libertarianism)", y="Perceived COVID risk") 
print(p)              
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
Warning: Removed 4 rows containing non-finite values (stat_smooth).
Warning: Removed 4 rows containing missing values (geom_point).

Version Author Date
356b029 Lorenz-Spreen 2020-04-10
8a3d336 Lorenz-Spreen 2020-04-09
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09
pcor <- cor.test (covfin$Worldview,covfin$COVIDrisk, use="pairwise.complete.obs") %>% print()

    Pearson's product-moment correlation

data:  covfin$Worldview and covfin$COVIDrisk
t = -3.5683, df = 801, p-value = 0.0003806
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.19260819 -0.05639416
sample estimates:
       cor 
-0.1250906 

There is a small, but statistically significant correlation between worldviews and risk perception, such that greater libertarianism is (just) associated with reduced risk perception. The variance accounted for (0.016) is minimal.

4.2 Worldviews and trust

We relate the composite of the 3 worldview items to the composite of the two trust-in-government items (which correlate 0.808).

p <- ggplot(covfin, aes(Worldview, govtrust)) +
            geom_point(size=1.5,shape = 21,fill="red",
               position=position_jitter(width=0.15, height=0.15)) +
            geom_smooth() +
    theme(plot.title = element_text(size = 18),
          panel.background = element_rect(fill = "white", colour = "grey50"),
          text = element_text(size=14)) +
    xlim(0.8,7.2) + ylim(0.8,5.2) +
    labs(x="Worldview (libertarianism)", y="Trust in government") 
print(p)              
`geom_smooth()` using method = 'loess' and formula 'y ~ x'
Warning: Removed 111 rows containing non-finite values (stat_smooth).
Warning: Removed 111 rows containing missing values (geom_point).

Version Author Date
356b029 Lorenz-Spreen 2020-04-10
8a3d336 Lorenz-Spreen 2020-04-09
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09
pcor <- cor.test (covfin$Worldview,covfin$govtrust, use="pairwise.complete.obs") %>% print()

    Pearson's product-moment correlation

data:  covfin$Worldview and covfin$govtrust
t = -2.193, df = 801, p-value = 0.0286
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.145659760 -0.008112659
sample estimates:
        cor 
-0.07725379 

The pattern is suggestive of the possibility that trust in government is less at both extremes of the ideological scale.

5 Logistic modeling

We now try to model acceptability of the scenarios from some of the other variables using logistic regression. The models were initially developed by Dan Little, imported and extended by Stephan Lewandowsky on 7 April 2020.

5.1 Mixed-effects modeling

The first model is a mixed-effects model. This includes a random intercept (i.e., a different intercept for each participant). The model used the various trust variables and other questions about the policies being proposed.

lrmod1 <- glmer(accept1 ~ decline_participate + proportionality + sensitivity + risk_of_harm + trust_intentions + trust_respectprivacy  + scenario_type + (1 | id), 
                data = covfin, family = binomial)
Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
control$checkConv, : Model failed to converge with max|grad| = 1.65379 (tol
= 0.001, component 1)
summ(lrmod1,digits=3)
Warning in summ.merMod(lrmod1, digits = 3): Could not calculate r-squared. Try removing missing data
before fitting the model.
Observations 807
Dependent variable accept1
Type Mixed effects generalized linear model
Family binomial
Link logit
AIC 689.748
BIC 731.988
Fixed Effects
Est. S.E. z val.
(Intercept) -2.716 0.698 -3.888
decline_participate -0.009 0.082 -0.107
proportionality 0.456 0.107 4.254
sensitivity -0.009 0.089 -0.096
risk_of_harm -0.308 0.098 -3.142
trust_intentions 0.341 0.111 3.077
trust_respectprivacy 0.465 0.121 3.831
scenario_typesevere 0.259 0.263 0.985
Random Effects
Group Parameter Std. Dev.
id (Intercept) 0.572
Grouping Variables
Group # groups ICC
id 807 0.090
#try a different optimizer to see if singularity persists
ss <- getME(lrmod1,c("theta","fixef"))
lrmod1a <- update(lrmod1,start=ss,control=glmerControl(optimizer="bobyqa",   optCtrl=list(maxfun=2e5))) 
summ(lrmod1a,digits=3)
Warning in summ.merMod(lrmod1a, digits = 3): Could not calculate r-squared. Try removing missing data
before fitting the model.
Observations 807
Dependent variable accept1
Type Mixed effects generalized linear model
Family binomial
Link logit
AIC 689.712
BIC 731.952
Fixed Effects
Est. S.E. z val.
(Intercept) -2.764 0.723 -3.822
decline_participate -0.012 0.082 -0.142
proportionality 0.455 0.109 4.158
sensitivity 0.002 0.090 0.020
risk_of_harm -0.312 0.100 -3.130
trust_intentions 0.341 0.113 3.024
trust_respectprivacy 0.480 0.126 3.794
scenario_typesevere 0.260 0.266 0.978
Random Effects
Group Parameter Std. Dev.
id (Intercept) 0.620
Grouping Variables
Group # groups ICC
id 807 0.105
#use composite score for trust
covfin$trust <- (covfin$proportionality + covfin$trust_intentions + covfin$trust_respectprivacy)/3
lrmod1b <- glmer(accept1 ~ decline_participate +  sensitivity + risk_of_harm + trust  + scenario_type + (1 | id), 
                data = covfin, family = binomial)
summ(lrmod1b,digits=3)
Warning in summ.merMod(lrmod1b, digits = 3): Could not calculate r-squared. Try removing missing data
before fitting the model.
Observations 807
Dependent variable accept1
Type Mixed effects generalized linear model
Family binomial
Link logit
AIC 686.439
BIC 719.292
Fixed Effects
Est. S.E. z val.
(Intercept) -2.718 0.717 -3.793
decline_participate -0.016 0.082 -0.192
sensitivity -0.002 0.088 -0.020
risk_of_harm -0.305 0.099 -3.083
trust 1.264 0.214 5.919
scenario_typesevere 0.268 0.265 1.012
Random Effects
Group Parameter Std. Dev.
id (Intercept) 0.617
Grouping Variables
Group # groups ICC
id 807 0.104

It is clear that the singularity is caused by the near-zero random-effects variance and seems quite resistant to a few attempts to get around it. The remaining models therefore drop the random effect.

5.2 Ordinary logistic regression

Acceptance as a function of trust in government and perceived consequences of policies. The two models are for the two acceptance/uptake questions: The first model is for the first question early on in the piece, and the second model is for the question provided later on, after all the various questions about trust have been answered.

mod1 <- glm(accept1 ~ decline_participate + proportionality + sensitivity + risk_of_harm + trust_intentions + trust_respectprivacy  + scenario_type, 
              data = covfin, family = binomial)
summ(mod1,digits=3)
Observations 807
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(7) 398.187
Pseudo-R² (Cragg-Uhler) 0.530
Pseudo-R² (McFadden) 0.372
AIC 687.973
BIC 725.520
Est. S.E. z val. p
(Intercept) -2.565 0.533 -4.814 0.000
decline_participate -0.012 0.078 -0.155 0.877
proportionality 0.426 0.083 5.148 0.000
sensitivity 0.004 0.085 0.046 0.963
risk_of_harm -0.296 0.088 -3.377 0.001
trust_intentions 0.318 0.094 3.382 0.001
trust_respectprivacy 0.446 0.095 4.703 0.000
scenario_typesevere 0.242 0.247 0.983 0.325
Standard errors: MLE
summ(mod1,digits=3,scale=TRUE)
Observations 807
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(7) 398.187
Pseudo-R² (Cragg-Uhler) 0.530
Pseudo-R² (McFadden) 0.372
AIC 687.973
BIC 725.520
Est. S.E. z val. p
(Intercept) 0.668 0.160 4.178 0.000
decline_participate -0.021 0.134 -0.155 0.877
proportionality 0.665 0.129 5.148 0.000
sensitivity 0.005 0.111 0.046 0.963
risk_of_harm -0.432 0.128 -3.377 0.001
trust_intentions 0.540 0.160 3.382 0.001
trust_respectprivacy 0.731 0.155 4.703 0.000
scenario_type 0.242 0.247 0.983 0.325
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.
mod2 <- glm(accept2 ~ decline_participate + proportionality + sensitivity + risk_of_harm + trust_intentions + trust_respectprivacy  +  scenario_type, 
       data = covfin, family = binomial)
summ(mod2,digits=3)
Observations 807
Dependent variable accept2
Type Generalized linear model
Family binomial
Link logit
𝛘²(7) 438.211
Pseudo-R² (Cragg-Uhler) 0.566
Pseudo-R² (McFadden) 0.403
AIC 664.996
BIC 702.543
Est. S.E. z val. p
(Intercept) -2.068 0.525 -3.942 0.000
decline_participate -0.066 0.079 -0.836 0.403
proportionality 0.369 0.087 4.254 0.000
sensitivity -0.092 0.086 -1.065 0.287
risk_of_harm -0.326 0.089 -3.661 0.000
trust_intentions 0.544 0.097 5.612 0.000
trust_respectprivacy 0.321 0.096 3.340 0.001
scenario_typesevere 0.095 0.248 0.382 0.703
Standard errors: MLE
summ(mod2,digits=3,scale=TRUE)
Observations 807
Dependent variable accept2
Type Generalized linear model
Family binomial
Link logit
𝛘²(7) 438.211
Pseudo-R² (Cragg-Uhler) 0.566
Pseudo-R² (McFadden) 0.403
AIC 664.996
BIC 702.543
Est. S.E. z val. p
(Intercept) 0.586 0.162 3.623 0.000
decline_participate -0.114 0.136 -0.836 0.403
proportionality 0.576 0.135 4.254 0.000
sensitivity -0.120 0.113 -1.065 0.287
risk_of_harm -0.475 0.130 -3.661 0.000
trust_intentions 0.925 0.165 5.612 0.000
trust_respectprivacy 0.526 0.158 3.340 0.001
scenario_type 0.095 0.248 0.382 0.703
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.
plot_summs(mod2, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)

Version Author Date
c53bea7 Lorenz-Spreen 2020-04-09

The type of scenario has no effect, but acceptance increases with trust in government and declines with perceived risk of harm from the policy. The pattern is consistent across the two opportunities to express an opinion on acceptance.

Acceptance as a function of perceived severity of COVID. The models again target the two acceptance/uptake items in turn. The predictors are all the COVID-related items, including days in lockdown and job loss and so on.

mod3 <- glm(accept1 ~ COVID_sev_general + COVID_pers_harm + COVID_pers_concern + COVID_concern4others + COVID_positive_1 + COVID_positive_2 + COVID_ndays_lockdown_4 + COVID_lost_job + scenario_type, data = covfin, family = binomial)
summ(mod3,digits=3)
Observations 759 (48 missing obs. deleted)
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(9) 86.080
Pseudo-R² (Cragg-Uhler) 0.146
Pseudo-R² (McFadden) 0.086
AIC 940.568
BIC 986.888
Est. S.E. z val. p
(Intercept) -2.579 0.453 -5.699 0.000
COVID_sev_general 0.334 0.115 2.898 0.004
COVID_pers_harm 0.144 0.086 1.669 0.095
COVID_pers_concern 0.250 0.105 2.388 0.017
COVID_concern4others 0.178 0.092 1.933 0.053
COVID_positive_1 -0.007 0.693 -0.010 0.992
COVID_positive_2 -0.147 0.260 -0.566 0.572
COVID_ndays_lockdown_4 0.012 0.008 1.537 0.124
COVID_lost_job -0.199 0.246 -0.810 0.418
scenario_typesevere -0.053 0.159 -0.333 0.739
Standard errors: MLE
summ(mod3,digits=3,scale=TRUE)
Observations 759 (48 missing obs. deleted)
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(9) 86.080
Pseudo-R² (Cragg-Uhler) 0.146
Pseudo-R² (McFadden) 0.086
AIC 940.568
BIC 986.888
Est. S.E. z val. p
(Intercept) 0.629 0.123 5.109 0.000
COVID_sev_general 0.264 0.091 2.898 0.004
COVID_pers_harm 0.168 0.101 1.669 0.095
COVID_pers_concern 0.296 0.124 2.388 0.017
COVID_concern4others 0.204 0.105 1.933 0.053
COVID_positive_1 -0.007 0.693 -0.010 0.992
COVID_positive_2 -0.147 0.260 -0.566 0.572
COVID_ndays_lockdown_4 0.127 0.083 1.537 0.124
COVID_lost_job -0.199 0.246 -0.810 0.418
scenario_type -0.053 0.159 -0.333 0.739
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.

People are more likely to accept policies if they perceive greater potential for societal harm and higher personal concern. Because there was a marginal effect of scenario type, we next explore interactions.

mod4 <- glm(accept1 ~ COVID_sev_general + COVID_pers_harm + COVID_pers_concern + COVID_concern4others + COVID_positive_1 + COVID_positive_2 + 
              COVID_ndays_lockdown_4 + COVID_lost_job + scenario_type + scenario_type:COVID_sev_general + scenario_type:COVID_pers_concern, 
            data = covfin, family = binomial)
summ(mod4,digits=3)
Observations 759 (48 missing obs. deleted)
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(11) 86.360
Pseudo-R² (Cragg-Uhler) 0.146
Pseudo-R² (McFadden) 0.086
AIC 944.287
BIC 999.871
Est. S.E. z val. p
(Intercept) -2.798 0.619 -4.521 0.000
COVID_sev_general 0.386 0.165 2.341 0.019
COVID_pers_harm 0.142 0.086 1.649 0.099
COVID_pers_concern 0.259 0.133 1.950 0.051
COVID_concern4others 0.178 0.092 1.927 0.054
COVID_positive_1 -0.015 0.697 -0.022 0.982
COVID_positive_2 -0.147 0.260 -0.566 0.572
COVID_ndays_lockdown_4 0.012 0.008 1.531 0.126
COVID_lost_job -0.199 0.246 -0.809 0.418
scenario_typesevere 0.383 0.840 0.456 0.649
COVID_sev_general:scenario_typesevere -0.100 0.223 -0.450 0.653
COVID_pers_concern:scenario_typesevere -0.018 0.152 -0.121 0.904
Standard errors: MLE
summ(mod4,digits=3,scale=TRUE)
Observations 759 (48 missing obs. deleted)
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(11) 86.360
Pseudo-R² (Cragg-Uhler) 0.146
Pseudo-R² (McFadden) 0.086
AIC 944.287
BIC 999.871
Est. S.E. z val. p
(Intercept) 0.633 0.124 5.087 0.000
COVID_sev_general 0.305 0.130 2.341 0.019
COVID_pers_harm 0.166 0.101 1.649 0.099
COVID_pers_concern 0.307 0.157 1.950 0.051
COVID_concern4others 0.203 0.105 1.927 0.054
COVID_positive_1 -0.015 0.697 -0.022 0.982
COVID_positive_2 -0.147 0.260 -0.566 0.572
COVID_ndays_lockdown_4 0.127 0.083 1.531 0.126
COVID_lost_job -0.199 0.246 -0.809 0.418
scenario_type -0.063 0.161 -0.389 0.698
COVID_sev_general:scenario_type -0.079 0.176 -0.450 0.653
COVID_pers_concern:scenario_type -0.022 0.180 -0.121 0.904
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.
plot_summs(mod4, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)

Version Author Date
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09
mod5 <- glm(accept2 ~ COVID_sev_general + COVID_pers_harm + COVID_pers_concern + COVID_concern4others + COVID_positive_1 + COVID_positive_2 + COVID_ndays_lockdown_4 + COVID_lost_job + scenario_type + scenario_type:COVID_sev_general + scenario_type:COVID_pers_concern, data = covfin, family = binomial)
summ(mod5,digits=3)
Observations 759 (48 missing obs. deleted)
Dependent variable accept2
Type Generalized linear model
Family binomial
Link logit
𝛘²(11) 81.310
Pseudo-R² (Cragg-Uhler) 0.137
Pseudo-R² (McFadden) 0.080
AIC 964.645
BIC 1020.229
Est. S.E. z val. p
(Intercept) -2.881 0.620 -4.646 0.000
COVID_sev_general 0.419 0.165 2.535 0.011
COVID_pers_harm 0.203 0.085 2.385 0.017
COVID_pers_concern 0.168 0.132 1.272 0.204
COVID_concern4others 0.191 0.092 2.085 0.037
COVID_positive_1 0.231 0.692 0.334 0.738
COVID_positive_2 -0.083 0.258 -0.321 0.749
COVID_ndays_lockdown_4 0.008 0.008 1.028 0.304
COVID_lost_job -0.258 0.243 -1.059 0.290
scenario_typesevere 0.632 0.831 0.760 0.447
COVID_sev_general:scenario_typesevere -0.207 0.221 -0.933 0.351
COVID_pers_concern:scenario_typesevere -0.015 0.149 -0.098 0.922
Standard errors: MLE
summ(mod5,digits=3,scale=TRUE)
Observations 759 (48 missing obs. deleted)
Dependent variable accept2
Type Generalized linear model
Family binomial
Link logit
𝛘²(11) 81.310
Pseudo-R² (Cragg-Uhler) 0.137
Pseudo-R² (McFadden) 0.080
AIC 964.645
BIC 1020.229
Est. S.E. z val. p
(Intercept) 0.599 0.123 4.857 0.000
COVID_sev_general 0.331 0.130 2.535 0.011
COVID_pers_harm 0.237 0.099 2.385 0.017
COVID_pers_concern 0.198 0.156 1.272 0.204
COVID_concern4others 0.218 0.105 2.085 0.037
COVID_positive_1 0.231 0.692 0.334 0.738
COVID_positive_2 -0.083 0.258 -0.321 0.749
COVID_ndays_lockdown_4 0.083 0.081 1.028 0.304
COVID_lost_job -0.258 0.243 -1.059 0.290
scenario_type -0.218 0.159 -1.373 0.170
COVID_sev_general:scenario_type -0.163 0.175 -0.933 0.351
COVID_pers_concern:scenario_type -0.017 0.176 -0.098 0.922
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.
plot_summs(mod5, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)

Version Author Date
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09

Perception of general severity interacts with type of scenario: People are even more likely to accept the severe scenario if people perceive higher general severity of COVID. This is true on both occasions.

Full model for acceptance. The final model (for now) combines all predictors including Worldview composite.

mod6 <- glm(accept1 ~ COVID_sev_general + COVID_pers_harm + COVID_pers_concern + COVID_concern4others + COVID_positive_1 + COVID_positive_2 + 
              COVID_ndays_lockdown_4 + COVID_lost_job + scenario_type + scenario_type:COVID_sev_general + scenario_type:COVID_pers_concern + 
              decline_participate + proportionality + sensitivity + risk_of_harm + trust_intentions + trust_respectprivacy +
              Worldview, data = covfin, family = binomial)
summ(mod6,digits=3)
Observations 755 (52 missing obs. deleted)
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(18) 400.574
Pseudo-R² (Cragg-Uhler) 0.561
Pseudo-R² (McFadden) 0.400
AIC 638.282
BIC 726.190
Est. S.E. z val. p
(Intercept) -3.662 1.119 -3.274 0.001
COVID_sev_general 0.244 0.214 1.141 0.254
COVID_pers_harm 0.066 0.116 0.570 0.569
COVID_pers_concern 0.008 0.174 0.048 0.962
COVID_concern4others 0.199 0.122 1.624 0.104
COVID_positive_1 -0.505 0.874 -0.578 0.563
COVID_positive_2 -0.427 0.337 -1.266 0.206
COVID_ndays_lockdown_4 0.002 0.010 0.162 0.871
COVID_lost_job 0.241 0.300 0.804 0.422
scenario_typesevere -0.453 1.144 -0.396 0.692
decline_participate 0.015 0.083 0.177 0.859
proportionality 0.367 0.092 3.983 0.000
sensitivity -0.010 0.090 -0.116 0.908
risk_of_harm -0.291 0.095 -3.067 0.002
trust_intentions 0.352 0.102 3.442 0.001
trust_respectprivacy 0.442 0.103 4.301 0.000
Worldview -0.156 0.128 -1.220 0.223
COVID_sev_general:scenario_typesevere 0.040 0.301 0.134 0.893
COVID_pers_concern:scenario_typesevere 0.167 0.202 0.824 0.410
Standard errors: MLE
summ(mod6,digits=3,scale=TRUE)
Observations 755 (52 missing obs. deleted)
Dependent variable accept1
Type Generalized linear model
Family binomial
Link logit
𝛘²(18) 400.574
Pseudo-R² (Cragg-Uhler) 0.561
Pseudo-R² (McFadden) 0.400
AIC 638.282
BIC 726.190
Est. S.E. z val. p
(Intercept) 0.738 0.183 4.039 0.000
COVID_sev_general 0.193 0.169 1.141 0.254
COVID_pers_harm 0.077 0.136 0.570 0.569
COVID_pers_concern 0.010 0.206 0.048 0.962
COVID_concern4others 0.228 0.140 1.624 0.104
COVID_positive_1 -0.505 0.874 -0.578 0.563
COVID_positive_2 -0.427 0.337 -1.266 0.206
COVID_ndays_lockdown_4 0.018 0.111 0.162 0.871
COVID_lost_job 0.241 0.300 0.804 0.422
scenario_type 0.190 0.264 0.718 0.473
decline_participate 0.026 0.144 0.177 0.859
proportionality 0.570 0.143 3.983 0.000
sensitivity -0.014 0.118 -0.116 0.908
risk_of_harm -0.425 0.138 -3.067 0.002
trust_intentions 0.599 0.174 3.442 0.001
trust_respectprivacy 0.726 0.169 4.301 0.000
Worldview -0.138 0.113 -1.220 0.223
COVID_sev_general:scenario_type 0.032 0.238 0.134 0.893
COVID_pers_concern:scenario_type 0.197 0.239 0.824 0.410
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.
plot_summs(mod6, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)

Version Author Date
356b029 Lorenz-Spreen 2020-04-10
8a3d336 Lorenz-Spreen 2020-04-09
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09
mod7 <- glm(accept2 ~ COVID_sev_general + COVID_pers_harm + COVID_pers_concern + COVID_concern4others + COVID_positive_1 + COVID_positive_2 + 
              COVID_ndays_lockdown_4 + COVID_lost_job + scenario_type + scenario_type:COVID_sev_general + scenario_type:COVID_pers_concern + 
              decline_participate + proportionality + sensitivity + risk_of_harm + trust_intentions + trust_respectprivacy +
              Worldview, data = covfin, family = binomial)
summ(mod7,digits=3)
Observations 755 (52 missing obs. deleted)
Dependent variable accept2
Type Generalized linear model
Family binomial
Link logit
𝛘²(18) 430.052
Pseudo-R² (Cragg-Uhler) 0.587
Pseudo-R² (McFadden) 0.424
AIC 623.379
BIC 711.287
Est. S.E. z val. p
(Intercept) -3.494 1.142 -3.060 0.002
COVID_sev_general 0.336 0.220 1.522 0.128
COVID_pers_harm 0.187 0.118 1.581 0.114
COVID_pers_concern -0.181 0.180 -1.007 0.314
COVID_concern4others 0.240 0.125 1.911 0.056
COVID_positive_1 -0.091 0.901 -0.101 0.920
COVID_positive_2 -0.263 0.344 -0.765 0.444
COVID_ndays_lockdown_4 -0.005 0.010 -0.520 0.603
COVID_lost_job 0.235 0.305 0.771 0.441
scenario_typesevere 0.099 1.164 0.085 0.932
decline_participate -0.039 0.084 -0.468 0.640
proportionality 0.355 0.095 3.744 0.000
sensitivity -0.114 0.091 -1.250 0.211
risk_of_harm -0.314 0.096 -3.257 0.001
trust_intentions 0.549 0.104 5.289 0.000
trust_respectprivacy 0.311 0.104 2.989 0.003
Worldview -0.153 0.130 -1.174 0.241
COVID_sev_general:scenario_typesevere -0.168 0.307 -0.548 0.583
COVID_pers_concern:scenario_typesevere 0.211 0.205 1.031 0.302
Standard errors: MLE
summ(mod7,digits=3,scale=TRUE)
Observations 755 (52 missing obs. deleted)
Dependent variable accept2
Type Generalized linear model
Family binomial
Link logit
𝛘²(18) 430.052
Pseudo-R² (Cragg-Uhler) 0.587
Pseudo-R² (McFadden) 0.424
AIC 623.379
BIC 711.287
Est. S.E. z val. p
(Intercept) 0.624 0.184 3.388 0.001
COVID_sev_general 0.266 0.175 1.522 0.128
COVID_pers_harm 0.218 0.138 1.581 0.114
COVID_pers_concern -0.214 0.213 -1.007 0.314
COVID_concern4others 0.274 0.144 1.911 0.056
COVID_positive_1 -0.091 0.901 -0.101 0.920
COVID_positive_2 -0.263 0.344 -0.765 0.444
COVID_ndays_lockdown_4 -0.058 0.111 -0.520 0.603
COVID_lost_job 0.235 0.305 0.771 0.441
scenario_type 0.055 0.265 0.207 0.836
decline_participate -0.068 0.146 -0.468 0.640
proportionality 0.551 0.147 3.744 0.000
sensitivity -0.149 0.119 -1.250 0.211
risk_of_harm -0.457 0.140 -3.257 0.001
trust_intentions 0.935 0.177 5.289 0.000
trust_respectprivacy 0.510 0.171 2.989 0.003
Worldview -0.135 0.115 -1.174 0.241
COVID_sev_general:scenario_type -0.133 0.243 -0.548 0.583
COVID_pers_concern:scenario_type 0.250 0.242 1.031 0.302
Standard errors: MLE; Continuous predictors are mean-centered and scaled by 1 s.d.
plot_summs(mod7, scale = TRUE, plot.distributions = TRUE, inner_ci_level = .9)

Version Author Date
356b029 Lorenz-Spreen 2020-04-10
8a3d336 Lorenz-Spreen 2020-04-09
e68c870 Lorenz-Spreen 2020-04-09
c53bea7 Lorenz-Spreen 2020-04-09

sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Mojave 10.14.6

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] broom.mixed_0.2.4  kableExtra_1.1.0   jtools_2.0.3      
 [4] expss_0.10.2       vioplot_0.3.4      zoo_1.8-6         
 [7] sm_2.2-5.6         readxl_1.3.1       workflowr_1.6.1   
[10] summarytools_0.9.6 scales_1.0.0       psych_1.9.12.31   
[13] reshape2_1.4.3     Hmisc_4.4-0        Formula_1.2-3     
[16] survival_3.1-8     gridExtra_2.3      lme4_1.1-21       
[19] Matrix_1.2-18      forcats_0.4.0      stringr_1.4.0     
[22] dplyr_0.8.5        purrr_0.3.2        readr_1.3.1       
[25] tidyr_1.0.0        tibble_2.1.3       ggplot2_3.2.0     
[28] tidyverse_1.2.1    stargazer_5.2.2    hexbin_1.27.3     
[31] lattice_0.20-38   

loaded via a namespace (and not attached):
 [1] minqa_1.2.4         colorspace_1.4-1    pryr_0.1.4         
 [4] ellipsis_0.2.0.1    rprojroot_1.3-2     ggstance_0.3.4     
 [7] htmlTable_1.13.3    base64enc_0.1-3     fs_1.3.1           
[10] rstudioapi_0.10     lubridate_1.7.4     xml2_1.2.0         
[13] codetools_0.2-16    splines_3.6.3       mnormt_1.5-6       
[16] knitr_1.23          zeallot_0.1.0       jsonlite_1.6       
[19] nloptr_1.2.1        broom_0.5.2         cluster_2.1.0      
[22] compiler_3.6.3      httr_1.4.0          backports_1.1.4    
[25] assertthat_0.2.1    lazyeval_0.2.2      cli_1.1.0          
[28] later_0.8.0         acepack_1.4.1       htmltools_0.3.6    
[31] tools_3.6.3         coda_0.19-3         gtable_0.3.0       
[34] glue_1.3.1          Rcpp_1.0.1          cellranger_1.1.0   
[37] vctrs_0.2.0         nlme_3.1-144        xfun_0.8           
[40] rvest_0.3.4         lifecycle_0.1.0     MASS_7.3-51.5      
[43] hms_0.5.0           promises_1.0.1      parallel_3.6.3     
[46] TMB_1.7.16          RColorBrewer_1.1-2  yaml_2.2.0         
[49] pander_0.6.3        rpart_4.1-15        latticeExtra_0.6-28
[52] stringi_1.4.3       checkmate_1.9.4     boot_1.3-24        
[55] rlang_0.4.0         pkgconfig_2.0.2     matrixStats_0.55.0 
[58] evaluate_0.14       labeling_0.3        rapportools_1.0    
[61] htmlwidgets_1.3     tidyselect_0.2.5    plyr_1.8.4         
[64] magrittr_1.5        R6_2.4.0            magick_2.3         
[67] generics_0.0.2      pillar_1.4.2        haven_2.1.1        
[70] whisker_0.3-2       foreign_0.8-75      withr_2.1.2        
[73] nnet_7.3-12         modelr_0.1.4        crayon_1.3.4       
[76] rmarkdown_1.13      grid_3.6.3          data.table_1.12.8  
[79] git2r_0.26.1        digest_0.6.20       webshot_0.5.1      
[82] httpuv_1.5.1        munsell_0.5.0       viridisLite_0.3.0  
[85] tcltk_3.6.3